<?
package("jpunit.framework");

/**
 * $Id: Test.php,v 1.5 2004/08/26 00:51:28 japha Exp $
 *
 * A <em>Test</em> can be run and collect its results.
 *
 * @see TestResult
 * @author <a href="mailto:gantt@cs.montana.edu">Ryan Gantt</a>
 * @version $Revision: 1.5 $
 */
interface Test
{
	/**
	 * Counts the number of test cases that will be run by this test.
	 */
	public function countTestCases();
	
	/**
	 * Runs a test and collects its result in a TestResult instance.
	 *
	 * @param result A TestResult instance to store the result of a test in
	 */
	public function run( TestResult $result=null );
	public function toString();
}

abstract class TestImpl extends Object implements Test
{
}
?>